"use strict";
// console.log("\x1b[31m这是加粗的文本\x1b[0m");
// console.log("<i>这是下划线的文本</i>")

console.log("\u001B[31m红色文本\u001B[0m");
console.log("\u001B[32m绿色文本\u001B[0m");
console.log("\u001B[33m黄色文本\u001B[0m");
console.log("\u001B[34m蓝色文本\u001B[0m");
console.log("\u001B[35m紫色文本\u001B[0m");
console.log("\u001B[36m青色文本\u001B[0m");
console.log("\u001B[37m原色文本\u001B[0m");

console.log("\u001B[1m加粗\u001B[0m\u001B[41m红背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[42m绿背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[43m黄背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[44m蓝背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[45m紫背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[46m青背文本\u001B[0m");
console.log("\u001B[1m加粗\u001B[0m\u001B[47m原背文本\u001B[0m");

const red = (/** @type {TemplateStringsArray} */ s) =>
  `\u001B[41m${s}\u001B[0m`;
const green = (/** @type {TemplateStringsArray} */ s) =>
  `\u001B[42m${s}\u001B[0m`;

console.log(red`红色文本`);
console.log(1, 2);

// 起始 `\x1b[${(3|4)}${(1_7)}m`
// 3x 无色 填充
// 4x 当前颜色填充
// x1 红色
// x2 绿
// x3 黄
// x4 蓝
// x5 紫
// x6 青
// x7 命令行对照色(原色), 相对于无控制码, x7拥有有当前颜色填充

// 加粗 `\x1b[1m`
// 结尾 `\x1b[0m`
